package cn.tannn.cat.file.server.entity;

import cn.tannn.cat.file.sdk.bean.FileIndex;
import cn.tannn.cat.file.sdk.bean.FileStorage;
import cn.tannn.cat.file.server.entity.convert.JSONObjectConverter;
import cn.tannn.cat.file.server.enums.LogDataType;
import cn.tannn.cat.file.server.enums.LogType;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.annotations.Comment;

/**
 * 日志 - 暂时不用
 *
 * @author <a href="https://tannn.cn/">tan</a>
 * @date 2024/3/19 13:36
 */
@Getter
@Setter
@ToString
public class FileLog {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(columnDefinition="bigint")
    @Comment("主键，自动生成")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 日志类型
     * @see LogType
     */
    @Comment("日志类型")
    @Column(columnDefinition = "varchar(100)  not null")
    private LogType logType;


    /**
     * 数据类型
     * @see LogDataType
     */
    @Comment("日志类型")
    @Column(columnDefinition = "varchar(100)  not null")
    private LogDataType logDataType;


    /**
     *  数据的ID 【数据类型中判断】
     */
    @Comment("数据的ID 【数据类型中判断】")
    @Column(columnDefinition = "bigint not null")
    private Long dataId;


    /**
     * 存储配置Json
     * @see Dict
     * @see FileStorage
     * @see FileIndex
     */
    @Comment("数据内容[json存根]")
    @Column(columnDefinition = "json")
    @Convert(converter = JSONObjectConverter.class)
    private JSONObject dataContext;



}
